<template>
	<view class="detail">
		<!-- 文章的标题 -->
		<view class="title">
			{{detail.title}}
		</view>
		<!-- 页眉 -->
		<view class="info">
			<!-- 作者 -->
			<view class="author">
				编辑：{{detail.author}}
			</view>
			<!-- 时间 -->
			<view class="time">
				发布日期：{{detail.posttime}}
			</view>

		</view>
		<!-- 主体内容 -->
		<view class="content">
			<!-- 使用富文本标签，将html代码解析出来 -->
			<rich-text :nodes="detail.content"></rich-text>
		</view>
		<!-- 版权声明 -->
		<view class="desc">
			免责声明：本站的内容全部均采集腾讯新闻，如果侵权请联系管理员（363351275@qq.com）进行整改删除，本站进行了内容采集不代表本站及其作者的观点，若有
			侵犯请及时联系管理员，感谢您的支持！
		</view>
	</view>
</template>

<script>
	// 导入转换时间戳的模块
	import {
		parseTime
	} from '../../utils/tool.js'

	export default {
		data() {
			return {
				options: null,
				detail: {}
			};
		},
		// 这样就可以随时拿到这个对象
		onLoad(e) {
			this.options = e
			this.getDetail()
		},
		methods: {
			// 获取新闻详情信息
			getDetail() {
				uni.request({
					url: 'https://ku.qingnian8.com/dataApi/news/detail.php',
					// 需要传递的参数
					data: this.options,
					success: res => {
						// console.log(res)
						// 将时间戳转换成年月日时分秒格式
						res.data.posttime = parseTime(res.data.posttime)
						// 正则表达式：用于适配微信小程序的图片大小内容
						res.data.content = res.data.content.replace(/<img/gi, '<img style="max-width:100%"')
						this.detail = res.data
						// 调用缓存
						this.saveHistory()
						// 切换导航条的显示内容
						uni.setNavigationBarTitle({
							title: this.detail.title
						})
					}
				})
			},
			// 缓存机制，用于保存浏览记录
			saveHistory() {
				// 判断里面有没有数据：有数据就追加没有数据就用空数组替代
				let historyArr = uni.getStorageSync("historyArr") || []

				// 将浏览的信息保存到item对象里面，方便缓存读取使用
				let item = {
					id: this.detail.id,
					classid: this.detail.classid,
					picurl: this.detail.picurl,
					title: this.detail.title,
					// 浏览的时间
					looktime: parseTime(Date.now())
				}

				// 拿到每一个的索引值
				let index = historyArr.findIndex(i => {
					return i.id == this.detail.id
				})

				// 判断索引值 如果有相同的索引值就追加新的缓存，删除原来保留的缓存
				if (index >= 0) {
					historyArr.splice(index, 1)
				}

				// 追加数组
				historyArr.unshift(item)
				// 最多保存10条缓存记录
				historyArr = historyArr.splice(0, 10)
				uni.setStorageSync("historyArr", historyArr)
			}
		}
	}
</script>

<style lang="scss">
	.detail {
		padding: 30rpx;

		.title {
			font-size: 50rpx;
			color: #333;
		}

		.info {
			background: #f6f6f6;
			padding: 20rpx 10rpx;
			font-size: 20rpx;
			color: #999;
			display: flex;
			justify-content: space-between;
			margin: 30rpx 0;
		}

		.content {
			padding-bottom: 50rpx;

			/deep/ img {
				width: 100%;

			}
		}

		// 声明
		.desc {
			background: #fef0f0;
			font-size: 26rpx;
			color: #f89898;
			padding: 20rpx;
			line-height: 1.8em;
		}
	}
</style>